<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Bipartiter Graph</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Bipartiter_Graph"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Bipartiter_Graph rootpage-Bipartiter_Graph skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Bipartiter Graph</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr">
<p>Ein <b>bipartiter</b> oder <b>paarer Graph</b> ist ein <a href="Mathematisches_Modell" title="Mathematisches Modell">mathematisches Modell</a> für Beziehungen zwischen den Elementen zweier Mengen. Es eignet sich sehr gut zur Untersuchung von <a href="Zuordnungsproblem" title="Zuordnungsproblem">Zuordnungsproblemen</a>. Des Weiteren lassen sich für bipartite Graphen viele Grapheneigenschaften mit deutlich weniger Aufwand berechnen als dies im allgemeinen Fall möglich ist.
</p>
<div class="mw-heading mw-heading2"><h2 id="Definitionen">Definitionen</h2></div>
<p>Ein <a href="Einfacher_Graph" title="Einfacher Graph">einfacher</a> <a href="Graph_(Graphentheorie)" title="Graph (Graphentheorie)">Graph</a> <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle G=(V,E)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>G</mi>
<mo>=</mo>
<mo stretchy="false">(</mo>
<mi>V</mi>
<mo>,</mo>
<mi>E</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle G=(V,E)}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/644a8d85ee410b6159ca2bdb5dcb9097e2c8f182.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:11.331ex; height:2.843ex;" alt="{\displaystyle G=(V,E)}" loading="lazy"></span> heißt bipartit oder paar, falls sich seine <a href="Knoten_(Graphentheorie)" title="Knoten (Graphentheorie)">Knoten</a> in zwei <a href="Disjunkt" title="Disjunkt">disjunkte</a> <a href="Teilmenge" title="Teilmenge">Teilmengen</a> <i>A</i> und <i>B</i> aufteilen lassen, sodass zwischen den Knoten innerhalb beider Teilmengen keine <a href="Kante_(Graphentheorie)" title="Kante (Graphentheorie)">Kanten</a> verlaufen. Das heißt, für jede Kante <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \{v,w\}\in E}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo fence="false" stretchy="false">{</mo>
<mi>v</mi>
<mo>,</mo>
<mi>w</mi>
<mo fence="false" stretchy="false">}</mo>
<mo>∈<!-- ∈ --></mo>
<mi>E</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \{v,w\}\in E}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/83c7ab671f0c5f3d57141f75d5e1403403ad27a0.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:10.767ex; height:2.843ex;" alt="{\displaystyle \{v,w\}\in E}" loading="lazy"></span> gilt entweder <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle v\in A}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>v</mi>
<mo>∈<!-- ∈ --></mo>
<mi>A</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle v\in A}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/e47413162b1047d7c55dcbef6c81881b64bae37f.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:5.711ex; height:2.176ex;" alt="{\displaystyle v\in A}" loading="lazy"></span> und <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle w\in B}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>w</mi>
<mo>∈<!-- ∈ --></mo>
<mi>B</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle w\in B}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/c403c519373013be3e8ed9da7900dc23abd012dc.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.269ex; height:2.176ex;" alt="{\displaystyle w\in B}" loading="lazy"></span> oder <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle v\in B}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>v</mi>
<mo>∈<!-- ∈ --></mo>
<mi>B</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle v\in B}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/79dc280a10b5e370fa53a66b1e9f362df6e1a606.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:5.732ex; height:2.176ex;" alt="{\displaystyle v\in B}" loading="lazy"></span> und <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle w\in A}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>w</mi>
<mo>∈<!-- ∈ --></mo>
<mi>A</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle w\in A}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/636cdbb131bfc0b5b7ce26222486f074c47ea62e.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.248ex; height:2.176ex;" alt="{\displaystyle w\in A}" loading="lazy"></span>. Die Menge <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \{A,B\}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo fence="false" stretchy="false">{</mo>
<mi>A</mi>
<mo>,</mo>
<mi>B</mi>
<mo fence="false" stretchy="false">}</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \{A,B\}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/f71a70f6b5ef10db8ada87f9ea61a03b369918de.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:6.866ex; height:2.843ex;" alt="{\displaystyle \{A,B\}}" loading="lazy"></span> bezeichnet man dann als <b>Bipartition</b> des Graphen <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle G}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>G</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle G}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/f5f3c8921a3b352de45446a6789b104458c9f90b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.827ex; height:2.176ex;" alt="{\displaystyle G}" loading="lazy"></span> und die Mengen <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle A,B}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>A</mi>
<mo>,</mo>
<mi>B</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle A,B}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/96c3298ea9aa77c226be56a7d8515baaa517b90b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:4.541ex; height:2.509ex;" alt="{\displaystyle A,B}" loading="lazy"></span> als <b>Partitionsklassen</b>. Vereinfacht dargestellt, ist ein bipartiter Graph ein <a href="Graph_(Graphentheorie)" title="Graph (Graphentheorie)">Graph</a>, in dem zwei Gruppen von Knoten existieren, innerhalb derer keine Knoten miteinander verbunden sind.
</p><p>Der <a href="Graph_(Graphentheorie)" title="Graph (Graphentheorie)">Graph</a> <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle G}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>G</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle G}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/f5f3c8921a3b352de45446a6789b104458c9f90b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.827ex; height:2.176ex;" alt="{\displaystyle G}" loading="lazy"></span> heißt <b>vollständig bipartit</b>, falls eine Bipartition <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \{A,B\}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo fence="false" stretchy="false">{</mo>
<mi>A</mi>
<mo>,</mo>
<mi>B</mi>
<mo fence="false" stretchy="false">}</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \{A,B\}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/f71a70f6b5ef10db8ada87f9ea61a03b369918de.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:6.866ex; height:2.843ex;" alt="{\displaystyle \{A,B\}}" loading="lazy"></span> existiert, sodass jeder <a href="Knoten_(Graphentheorie)" title="Knoten (Graphentheorie)">Knoten</a> aus <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle A}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>A</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle A}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/7daff47fa58cdfd29dc333def748ff5fa4c923e3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.743ex; height:2.176ex;" alt="{\displaystyle A}" loading="lazy"></span> mit jedem Knoten aus <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle B}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>B</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle B}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/47136aad860d145f75f3eed3022df827cee94d7a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.764ex; height:2.176ex;" alt="{\displaystyle B}" loading="lazy"></span> verbunden ist. Einen solchen Graphen bezeichnet man auch als <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle K_{m,n}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>K</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>m</mi>
<mo>,</mo>
<mi>n</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle K_{m,n}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/72acfc2cdfe30839be0b076060dcc4d938596b53.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:5.092ex; height:2.843ex;" alt="{\displaystyle K_{m,n}}" loading="lazy"></span>, wobei <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle m}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>m</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle m}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/0a07d98bb302f3856cbabc47b2b9016692e3f7bc.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.04ex; height:1.676ex;" alt="{\displaystyle m}" loading="lazy"></span> und <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>n</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle n}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/a601995d55609f2d9f5e233e36fbe9ea26011b3b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.395ex; height:1.676ex;" alt="{\displaystyle n}" loading="lazy"></span> jeweils die Anzahl der Knoten von <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle A}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>A</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle A}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/7daff47fa58cdfd29dc333def748ff5fa4c923e3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.743ex; height:2.176ex;" alt="{\displaystyle A}" loading="lazy"></span> und <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle B}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>B</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle B}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/47136aad860d145f75f3eed3022df827cee94d7a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.764ex; height:2.176ex;" alt="{\displaystyle B}" loading="lazy"></span> sind. Ein vollständig bipartiter Graph, bei dem <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle m=1}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>m</mi>
<mo>=</mo>
<mn>1</mn>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle m=1}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/b6100c5ebd48c6fd848709f2be624465203eb173.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.301ex; height:2.176ex;" alt="{\displaystyle m=1}" loading="lazy"></span> oder <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n=1}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>n</mi>
<mo>=</mo>
<mn>1</mn>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle n=1}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/d9ec7e1edc2e6d98f5aec2a39ae5f1c99d1e1425.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:5.656ex; height:2.176ex;" alt="{\displaystyle n=1}" loading="lazy"></span> ist, heißt <a href="Sterngraph" title="Sterngraph">Sterngraph</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Eigenschaften">Eigenschaften</h2></div>
<p>Für alle bipartiten Graphen gilt:
</p>
<ul><li>Die <a href="Paarungszahl" class="mw-redirect" title="Paarungszahl">Paarungszahl</a> entspricht der <a href="Knoten%C3%BCberdeckungszahl" class="mw-redirect" title="Knotenüberdeckungszahl">Knotenüberdeckungszahl</a>.</li>
<li>Die Partitionsklassen <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle A,B}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>A</mi>
<mo>,</mo>
<mi>B</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle A,B}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/96c3298ea9aa77c226be56a7d8515baaa517b90b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:4.541ex; height:2.509ex;" alt="{\displaystyle A,B}" loading="lazy"></span> sind schon nach Definition <a href="Stabile_Menge" title="Stabile Menge">stabile Mengen</a>.</li>
<li>Der <a href="Chromatischer_Index" class="mw-redirect" title="Chromatischer Index">chromatische Index</a> entspricht seinem <a href="Maximalgrad" class="mw-redirect" title="Maximalgrad">Maximalgrad</a>. Eine gültige Kantenfärbung lässt sich in <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle O(n\cdot m)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>O</mi>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo>⋅<!-- ⋅ --></mo>
<mi>m</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle O(n\cdot m)}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/6524d6c1f46df6977167a8605414bf7b7d0f8ff1.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:8.697ex; height:2.843ex;" alt="{\displaystyle O(n\cdot m)}" loading="lazy"></span> bestimmen.</li>
<li>Jeder bipartite Graph ist <a href="F%C3%A4rbung_(Graphentheorie)#Knotenfärbungen" title="Färbung (Graphentheorie)">2-knotenfärbbar</a>. Jede Partitionsklasse bekommt also eine Farbe zugewiesen. Umgekehrt ist auch jeder 2-färbbare Graph bipartit.</li>
<li>Ein <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle k}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>k</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle k}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/0d5595fc0c47452f8fc2aa6e29c3611f047714b0.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.211ex; height:2.176ex;" alt="{\textstyle k}" loading="lazy"></span>-<a href="Regul%C3%A4rer_Graph" title="Regulärer Graph">regulärer</a> bipartiter Graph besitzt <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle k}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>k</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle k}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/0d5595fc0c47452f8fc2aa6e29c3611f047714b0.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.211ex; height:2.176ex;" alt="{\textstyle k}" loading="lazy"></span> disjunkte perfekte <a href="Paarung_(Graphentheorie)" class="mw-redirect" title="Paarung (Graphentheorie)">Matchings</a>.</li>
<li>Ein Graph ist genau dann bipartit, wenn er keinen <a href="Kreis_(Graphentheorie)" class="mw-redirect" title="Kreis (Graphentheorie)">Kreis</a> ungerader Länge enthält.</li>
<li>Die <a href="Kantenchromatische_Zahl" class="mw-redirect" title="Kantenchromatische Zahl">kantenchromatische Zahl</a> entspricht seinem <a href="Maximalgrad" class="mw-redirect" title="Maximalgrad">Maximalgrad</a>.</li>
<li>Der <a href="Listenchromatischer_Index" class="mw-redirect" title="Listenchromatischer Index">Listenchromatische Index</a> ist gleich dem <a href="Chromatischer_Index" class="mw-redirect" title="Chromatischer Index">chromatischen Index</a>. Damit sind bipartite Graphen eine Klasse von Graphen, für welche die <a href="Listenf%C3%A4rbung#Eigenschaften" title="Listenfärbung">Listenfärbungsvermutung</a> zutrifft.</li>
<li>Es gilt <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \chi _{T}(G)\leq \Delta (G)+2}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>χ<!-- χ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>T</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>G</mi>
<mo stretchy="false">)</mo>
<mo>≤<!-- ≤ --></mo>
<mi mathvariant="normal">Δ<!-- Δ --></mi>
<mo stretchy="false">(</mo>
<mi>G</mi>
<mo stretchy="false">)</mo>
<mo>+</mo>
<mn>2</mn>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \chi _{T}(G)\leq \Delta (G)+2}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/4fa15f4e35bde30c9b82657ef53c2751993db02b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:19.154ex; height:2.843ex;" alt="{\displaystyle \chi _{T}(G)\leq \Delta (G)+2}" loading="lazy"></span>, wobei <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \chi _{T}(G)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>χ<!-- χ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>T</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>G</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \chi _{T}(G)}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/3633659b68814979ded1fa662444312e9eddd313.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:6.48ex; height:2.843ex;" alt="{\displaystyle \chi _{T}(G)}" loading="lazy"></span> die <a href="Totalchromatische_Zahl" class="mw-redirect" title="Totalchromatische Zahl">totalchromatische Zahl</a> ist und <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Delta (G)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi mathvariant="normal">Δ<!-- Δ --></mi>
<mo stretchy="false">(</mo>
<mi>G</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \Delta (G)}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/359a5b6529b6b451a49a95beec7c87d147f51961.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.572ex; height:2.843ex;" alt="{\displaystyle \Delta (G)}" loading="lazy"></span> der <a href="Maximalgrad" class="mw-redirect" title="Maximalgrad">Maximalgrad</a>. Für bipartite Graphen gilt also die <a href="Totalf%C3%A4rbung" title="Totalfärbung">Totalfärbungsvermutung</a>.</li>
<li>Alle bipartiten Graphen sind <a href="Perfekter_Graph" title="Perfekter Graph">perfekte Graphen</a>, somit stimmt für jeden <a href="Induzierter_Teilgraph" class="mw-redirect" title="Induzierter Teilgraph">induzierten Teilgraphen</a> die <a href="Cliquenzahl" class="mw-redirect" title="Cliquenzahl">Cliquenzahl</a> mit der <a href="Chromatische_Zahl" title="Chromatische Zahl">chromatischen Zahl</a> überein.</li></ul>
<p>Nach dem <a href="Satz_von_K%C3%B6nig_(Graphentheorie)" title="Satz von König (Graphentheorie)">Satz von König</a> entspricht in bipartiten Graphen die Größe der minimalen <a href="Knoten%C3%BCberdeckung" title="Knotenüberdeckung">Knotenüberdeckung</a> der Größe des <a href="Matching_(Graphentheorie)" title="Matching (Graphentheorie)">maximalen Matchings</a>. Eine alternative und äquivalente Form dieses Satzes besteht darin, dass die Größe der maximalen unabhängigen Menge plus die Größe des maximalen Matchings gleich der Anzahl der Knoten ist. In jedem <a href="Graph_(Graphentheorie)" title="Graph (Graphentheorie)">Graphen</a> ohne isolierte <a href="Knoten_(Graphentheorie)" title="Knoten (Graphentheorie)">Knoten</a> entspricht die Größe der minimalen <a href="Kanten%C3%BCberdeckung" class="mw-redirect" title="Kantenüberdeckung">Kantenüberdeckung</a> plus der Größe eines maximalen Matchings der Anzahl der Knoten. Aus der Kombination dieser Gleichung mit dem Satz von König folgt, dass in bipartiten Graphen die Größe der minimalen Kantenüberdeckung gleich der Größe der maximalen unabhängigen Menge ist und dass die Größe der minimalen Kantenüberdeckung plus der Größe der minimalen Knotenüberdeckung gleich der Anzahl der Knoten ist.
</p><p>Außerdem gilt: Jeder bipartite Graph, das Komplement jedes bipartiten Graphen, der <a href="Kantengraph" title="Kantengraph">Kantengraph</a> jedes bipartiten Graphen und das Komplement des Kantengraphen jedes bipartiten Graphen sind alle <a href="Perfekter_Graph" title="Perfekter Graph">perfekte Graphen</a>. Dies war eines der Ergebnisse, die die Definition perfekter Graphen motivierten.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Nach dem Satz der starken perfekten Graphen haben die perfekten Graphen eine verbotene Charakterisierung, die der von bipartiten Graphen ähnelt: Ein Graph ist genau dann bipartit, wenn er keinen ungeraden Zyklus als <a href="Teilgraph" title="Teilgraph">Teilgraph</a> hat, und ein <a href="Graph_(Graphentheorie)" title="Graph (Graphentheorie)">Graph</a> ist genau dann perfekt, wenn er keinen ungerader <a href="Zyklus_(Graphentheorie)" title="Zyklus (Graphentheorie)">Zyklus</a> oder sein <a href="Komplementgraph" title="Komplementgraph">Komplementgraphen</a> als induzierten Teilgraphen hat. Die bipartiten Graphen, <a href="Kantengraph" title="Kantengraph">Kantengraphen</a> von bipartiten Graphen und ihre Komplementgraphen bilden vier der fünf Grundklassen perfekter Graphen, die für den Beweis des Satzes der starken perfekten Graphen verwendet werden.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Für einen <a href="Knoten_(Graphentheorie)" title="Knoten (Graphentheorie)">Knoten</a> wird die Anzahl benachbarter Knoten als <a href="Grad_(Graphentheorie)" title="Grad (Graphentheorie)">Grad</a> des Knoten bezeichnet und als <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \deg(v)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>deg</mi>
<mo><!-- --></mo>
<mo stretchy="false">(</mo>
<mi>v</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \deg(v)}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/ccd42aee2bfea48d98b03eb19ca4bd3731f43d6a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:6.424ex; height:2.843ex;" alt="{\displaystyle \deg(v)}" loading="lazy"></span> bezeichnet. Die Gradsummenformel für einen bipartiten Graphen besagt, dass
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \sum _{v\in A}\deg(v)=\sum _{u\in B}\deg(u)=|E|}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<munder>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>v</mi>
<mo>∈<!-- ∈ --></mo>
<mi>A</mi>
</mrow>
</munder>
<mi>deg</mi>
<mo><!-- --></mo>
<mo stretchy="false">(</mo>
<mi>v</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<munder>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>u</mi>
<mo>∈<!-- ∈ --></mo>
<mi>B</mi>
</mrow>
</munder>
<mi>deg</mi>
<mo><!-- --></mo>
<mo stretchy="false">(</mo>
<mi>u</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \sum _{v\in A}\deg(v)=\sum _{u\in B}\deg(u)=|E|}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/41a934da19b8fc841714b9f0816412a11862bf1a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -3.171ex; width:29.801ex; height:5.676ex;" alt="{\displaystyle \sum _{v\in A}\deg(v)=\sum _{u\in B}\deg(u)=|E|}" loading="lazy"></span></dd></dl>
<p>Die <a href="Gradfolge" title="Gradfolge">Gradfolge</a> eines bipartiten Graphen ist das Paar von Listen, das jeweils die <a href="Knotengrad" class="mw-redirect" title="Knotengrad">Knotengrade</a> der beiden Partitionsklassen <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle A}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>A</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle A}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/7daff47fa58cdfd29dc333def748ff5fa4c923e3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.743ex; height:2.176ex;" alt="{\displaystyle A}" loading="lazy"></span> und <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle B}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>B</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle B}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/47136aad860d145f75f3eed3022df827cee94d7a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.764ex; height:2.176ex;" alt="{\displaystyle B}" loading="lazy"></span> enthält. Beispielsweise hat der vollständige bipartiten Graph <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle K_{3,5}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>K</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
<mo>,</mo>
<mn>5</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle K_{3,5}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/26040679270db13db94cd92b8bf581603edccc48.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:4.307ex; height:2.843ex;" alt="{\displaystyle K_{3,5}}" loading="lazy"></span> die Gradfolge <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (5,5,5),(3,3,3,3,3)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo stretchy="false">(</mo>
<mn>5</mn>
<mo>,</mo>
<mn>5</mn>
<mo>,</mo>
<mn>5</mn>
<mo stretchy="false">)</mo>
<mo>,</mo>
<mo stretchy="false">(</mo>
<mn>3</mn>
<mo>,</mo>
<mn>3</mn>
<mo>,</mo>
<mn>3</mn>
<mo>,</mo>
<mn>3</mn>
<mo>,</mo>
<mn>3</mn>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle (5,5,5),(3,3,3,3,3)}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/42552ff13646bc562427f9242a6d196a940c1818.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:20.156ex; height:2.843ex;" alt="{\displaystyle (5,5,5),(3,3,3,3,3)}" loading="lazy"></span>. <a href="Isomorphismus" title="Isomorphismus">Isomorphe</a> bipartite Graphen haben die gleiche Gradfolge. Die Gradfolge identifiziert jedoch im Allgemeinen einen bipartiten Graphen nicht eindeutig. In einigen Fällen können nicht-isomorphe zweigliedrige Graphen die gleiche Gradfolge aufweisen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Kombinatorik">Kombinatorik</h2></div>
<p>Die Anzahl der bipartiten Graphen steigt schneller als <a href="Exponentialfunktion" title="Exponentialfunktion">exponentiell</a> mit der Anzahl <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>n</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle n}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/a601995d55609f2d9f5e233e36fbe9ea26011b3b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.395ex; height:1.676ex;" alt="{\displaystyle n}" loading="lazy"></span> der <a href="Knoten_(Graphentheorie)" title="Knoten (Graphentheorie)">Knoten</a>. Die folgende <a href="Tabelle" title="Tabelle">Tabelle</a> zeigt die mit Hilfe eines <a href="Computer" title="Computer">Computers</a> bestimmten Anzahlen für <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n\leq 12}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>n</mi>
<mo>≤<!-- ≤ --></mo>
<mn>12</mn>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle n\leq 12}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/ced0c8199572399fda990e12bbbbc5192f3c0cae.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:6.818ex; height:2.343ex;" alt="{\displaystyle n\leq 12}" loading="lazy"></span>:<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<table class="wikitable" style="text-align:right">
<tbody><tr>
<th colspan="3">Anzahl der bipartiten Graphen
</th></tr>
<tr>
<th>n
</th>
<th>alle
</th>
<th>zusammenhängend
</th></tr>
<tr>
<th>1
</th>
<td>1
</td>
<td>1
</td></tr>
<tr>
<th>2
</th>
<td>2
</td>
<td>1
</td></tr>
<tr>
<th>3
</th>
<td>3
</td>
<td>1
</td></tr>
<tr>
<th>4
</th>
<td>7
</td>
<td>3
</td></tr>
<tr>
<th>5
</th>
<td>13
</td>
<td>5
</td></tr>
<tr>
<th>6
</th>
<td>35
</td>
<td>17
</td></tr>
<tr>
<th>7
</th>
<td>88
</td>
<td>44
</td></tr>
<tr>
<th>8
</th>
<td>303
</td>
<td>182
</td></tr>
<tr>
<th>9
</th>
<td>1119
</td>
<td>730
</td></tr>
<tr>
<th>10
</th>
<td>5479
</td>
<td>4032
</td></tr>
<tr>
<th>11
</th>
<td>32303
</td>
<td>25598
</td></tr>
<tr>
<th>12
</th>
<td>251135
</td>
<td>212780
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Algorithmen">Algorithmen</h2></div>
<div class="sieheauch" role="navigation" style="font-style:italic;"><span class="sieheauch-text">Siehe auch</span>: <a href="Graphpartitionierung" title="Graphpartitionierung">Graphpartitionierung</a></div>
<p>Mit dem <a href="Algorithmus_von_Hopcroft_und_Karp" title="Algorithmus von Hopcroft und Karp">Algorithmus von Hopcroft und Karp</a> lässt sich in der <a href="Laufzeit_(Informatik)" title="Laufzeit (Informatik)">Laufzeit</a> <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle O(m{\sqrt {n}})}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>O</mi>
<mo stretchy="false">(</mo>
<mi>m</mi>
<mrow class="MJX-TeXAtom-ORD">
<msqrt>
<mi>n</mi>
</msqrt>
</mrow>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle O(m{\sqrt {n}})}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/5245a222139778d01eafa6e99653ce6584c4e021.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:8.954ex; height:3.009ex;" alt="{\displaystyle O(m{\sqrt {n}})}" loading="lazy"></span> ein <a href="Maximales_Matching" class="mw-redirect" title="Maximales Matching">maximales Matching</a> finden und darüber auch die <a href="Stabilit%C3%A4tszahl" class="mw-redirect" title="Stabilitätszahl">Stabilitätszahl</a> bestimmen.
</p><p>Mit einem einfachen <a href="Algorithmus" title="Algorithmus">Algorithmus</a>, der auf <a href="Tiefensuche" title="Tiefensuche">Tiefensuche</a> basiert, lässt sich in linearer <a href="Laufzeit_(Informatik)" title="Laufzeit (Informatik)">Laufzeit</a> bestimmen, ob ein <a href="Graph_(Graphentheorie)" title="Graph (Graphentheorie)">Graph</a> bipartit ist, und eine gültige Partition bzw. 2-<a href="F%C3%A4rbung_(Graphentheorie)" title="Färbung (Graphentheorie)">Färbung</a> ermitteln. Dabei wird einem beliebigen <a href="Knoten_(Graphentheorie)" title="Knoten (Graphentheorie)">Knoten</a> eine Farbe, und seinen Kindern die jeweils komplementäre Farbe zugewiesen. Wird beim Färben festgestellt, dass zwei benachbarte Knoten die gleiche Farbe haben, ist der Graph nicht bipartit.
</p><p>Die Hauptidee besteht darin, jedem <a href="Knoten_(Graphentheorie)" title="Knoten (Graphentheorie)">Knoten</a> die Farbe zuzuweisen, die sich von der Farbe des übergeordneten Knotens in der <a href="Tiefensuche" title="Tiefensuche">Tiefensuche</a> unterscheidet, und Farben in der Hauptreihenfolge der Tiefensuche zuzuweisen. Dies führt zwangsläufig zu einer 2-<a href="F%C3%A4rbung_(Graphentheorie)" title="Färbung (Graphentheorie)">Färbung</a> des <a href="Aufspannender_Baum" class="mw-redirect" title="Aufspannender Baum">aufspannenden</a> Waldes, der aus den <a href="Kante_(Graphentheorie)" title="Kante (Graphentheorie)">Kanten</a> besteht, die die Knoten mit ihren übergeordneten Knoten verbinden, aber möglicherweise werden einige Kanten, die nicht zum Wald gehören, nicht richtig gefärbt. Einer der beiden Endknoten jeder Kante, die nicht zum Wald gehört, ist ein Vorfahr des anderen Endknotens. Wenn bei der Tiefensuche eine Kante dieses Typs entdeckt wird, sollte überprüft werden, ob diese beiden Knoten unterschiedliche Farben haben. Wenn dies nicht der Fall ist, bildet der Pfad im Wald vom Vorfahren zum Nachkommen zusammen mit der falsch gefärbten Kante einen ungeraden <a href="Zyklus_(Graphentheorie)" title="Zyklus (Graphentheorie)">Zyklus</a>, der vom <a href="Algorithmus" title="Algorithmus">Algorithmus</a> zusammen mit dem Ergebnis zurückgegeben wird, dass der Graph nicht bipartit ist. Wenn der Algorithmus jedoch beendet wird, ohne einen ungeraden Zyklus dieses Typs zu finden, muss jede Kante richtig gefärbt sein, und der Algorithmus gibt die Färbung zusammen mit dem Ergebnis zurück, dass der Graph bipartit ist.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p><p>Alternativ kann ein ähnlicher <a href="Algorithmus" title="Algorithmus">Algorithmus</a> mit <a href="Breitensuche" title="Breitensuche">Breitensuche</a> anstelle der Tiefensuche verwendet werden. Wiederum erhält jeder <a href="Knoten_(Graphentheorie)" title="Knoten (Graphentheorie)">Knoten</a> die entgegengesetzte Farbe zu seinem übergeordneten Knoten im <a href="Suchbaum" title="Suchbaum">Suchbaum</a> in der Reihenfolge der Breitensuche. Wenn beim Färben eines Knotens eine <a href="Kante_(Graphentheorie)" title="Kante (Graphentheorie)">Kante</a> vorhanden ist, die ihn mit einem zuvor gefärbten Knotens mit derselben Farbe verbindet, bildet diese Kante zusammen mit den <a href="Pfad_(Graphentheorie)" class="mw-redirect" title="Pfad (Graphentheorie)">Pfaden</a> im Suchbaum der Breitensuche ihrer beiden Endpunkte mit ihrem letzten gemeinsamen Vorfahren einen ungeraden <a href="Zyklus_(Graphentheorie)" title="Zyklus (Graphentheorie)">Zyklus</a>. Wenn der Algorithmus beendet wird, ohne auf diese Weise einen ungeraden Zyklus zu finden, muss er eine korrekte Färbung gefunden haben und kann daraus schließen, dass der Graph bipartit ist.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>Für die Schnittgraphen mit <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>n</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle n}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/a601995d55609f2d9f5e233e36fbe9ea26011b3b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.395ex; height:1.676ex;" alt="{\displaystyle n}" loading="lazy"></span> Strecken oder andere einfache Formen in der <a href="Euklidische_Ebene" class="mw-redirect" title="Euklidische Ebene">euklidischen Ebene</a> ist es möglich, mit einer <a href="Laufzeit_(Informatik)" title="Laufzeit (Informatik)">Laufzeit</a> von <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {O}}(n\cdot \log(n))}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">O</mi>
</mrow>
</mrow>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo>⋅<!-- ⋅ --></mo>
<mi>log</mi>
<mo><!-- --></mo>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {O}}(n\cdot \log(n))}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/41addf5ff9fad19fe3a34d951c6ada35738b171f.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:12.909ex; height:2.843ex;" alt="{\displaystyle {\mathcal {O}}(n\cdot \log(n))}" loading="lazy"></span> zu testen, ob der <a href="Graph_(Graphentheorie)" title="Graph (Graphentheorie)">Graph</a> bipartit ist und entweder eine 2-<a href="F%C3%A4rbung_(Graphentheorie)" title="Färbung (Graphentheorie)">Färbung</a> oder einen ungeraden <a href="Zyklus_(Graphentheorie)" title="Zyklus (Graphentheorie)">Zyklus</a> zu finden, obwohl der Graph selbst bis zu <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {O}}(n^{2})}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">O</mi>
</mrow>
</mrow>
<mo stretchy="false">(</mo>
<msup>
<mi>n</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {O}}(n^{2})}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/4441d9689c0e6b2c47994e2f587ac5378faeefba.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:6.108ex; height:3.176ex;" alt="{\displaystyle {\mathcal {O}}(n^{2})}" loading="lazy"></span> <a href="Kante_(Graphentheorie)" title="Kante (Graphentheorie)">Kanten</a> haben kann.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Matchings">Matchings</h3></div>
<div class="hauptartikel" role="navigation"><span class="hauptartikel-pfeil" title="siehe" aria-hidden="true" role="presentation">→ </span><i><span class="hauptartikel-text">Hauptartikel</span>: <a href="Matching_(Graphentheorie)" title="Matching (Graphentheorie)">Matching (Graphentheorie)</a></i></div><p>Ein <a href="Matching_(Graphentheorie)" title="Matching (Graphentheorie)">Matching</a> in einem <a href="Graph_(Graphentheorie)" title="Graph (Graphentheorie)">Graphen</a> ist eine <a href="Teilmenge" title="Teilmenge">Teilmenge</a> seiner <a href="Kante_(Graphentheorie)" title="Kante (Graphentheorie)">Kanten</a>, von denen keine zwei einen <a href="Knoten_(Graphentheorie)" title="Knoten (Graphentheorie)">Knoten</a> gemeinsam haben. <a href="Algorithmus" title="Algorithmus">Algorithmen</a> mit <a href="Polynomieller_Algorithmus" class="mw-redirect" title="Polynomieller Algorithmus">polynomieller</a> <a href="Laufzeit_(Informatik)" title="Laufzeit (Informatik)">Laufzeit</a> sind für viele Anwendungen mit Matchings bekannt, einschließlich <a href="Maximales_Matching" class="mw-redirect" title="Maximales Matching">maximaler Matchings</a>, dem Maximum Weight Matching und dem <a href="Stable_Marriage_Problem" title="Stable Marriage Problem">Stable Marriage Problem</a>.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p><p>In vielen Fällen sind Matching-Probleme für bipartite Graphen einfacher zu lösen als für nicht bipartite Graphen, und viele Matching-Algorithmen wie der <a href="Algorithmus_von_Hopcroft_und_Karp" title="Algorithmus von Hopcroft und Karp">Algorithmus von Hopcroft und Karp</a> für maximale Matchings funktionieren nur für bipartite Graphen korrekt.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p><p>Nehmen wir als einfaches Beispiel an, dass eine Gruppe <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle P}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>P</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle P}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/b4dc73bf40314945ff376bd363916a738548d40a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.745ex; height:2.176ex;" alt="{\displaystyle P}" loading="lazy"></span> von Personen Jobs aus einer Menge <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle J}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>J</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle J}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/359e4f407b49910e02c27c2f52e87a36cd74c053.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.471ex; height:2.176ex;" alt="{\displaystyle J}" loading="lazy"></span> von Jobs sucht, wobei nicht alle Personen für alle Jobs geeignet sind. Diese Situation kann als bipartiter Graph <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (P,J,E)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo stretchy="false">(</mo>
<mi>P</mi>
<mo>,</mo>
<mi>J</mi>
<mo>,</mo>
<mi>E</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle (P,J,E)}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/199b79f3770b422cc1d980e885a6e6dc66eea291.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:8.87ex; height:2.843ex;" alt="{\displaystyle (P,J,E)}" loading="lazy"></span> modelliert werden, bei dem eine Kante jeden Arbeitssuchenden mit jedem geeigneten Job verbindet. Ein <a href="Perfektes_Matching" class="mw-redirect" title="Perfektes Matching">perfektes Matching</a> beschreibt eine Möglichkeit, alle Arbeitssuchenden gleichzeitig zufrieden zu stellen und alle Jobs zu besetzen. Der <a href="Heiratssatz" title="Heiratssatz">Heiratssatz</a> liefert eine Charakterisierung der bipartiten Graphen, die ein perfektes Matching ermöglichen. Das <a href="National_Resident_Matching_Program" title="National Resident Matching Program">National Resident Matching Program</a> in den Vereinigten Staaten verwendet Matching-Algorithmen, um dieses Problem für Medizinstudenten und Jobs in Krankenhäusern zu lösen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Verallgemeinerung">Verallgemeinerung</h2></div>
<p>Ein <a href="K-partiter_Graph" title="K-partiter Graph">k-partiter Graph</a> ist ein Graph, dessen Knotenmenge in <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle k}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>k</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle k}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/c3c9a2c7b599b37105512c5d570edc034056dd40.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.211ex; height:2.176ex;" alt="{\displaystyle k}" loading="lazy"></span> Partitionen unterteilt werden kann, sodass es keine Kante zwischen zwei Knoten einer Partition gibt.
</p>
<div class="mw-heading mw-heading2"><h2 id="Programmierung">Programmierung</h2></div><p>
Das folgende Beispiel in der <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a> <a href="C-Sharp" title="C-Sharp">C#</a> zeigt die Implementierung eines <a href="Algorithmus" title="Algorithmus">Algorithmus</a>, der prüft, ob ein <a href="Ungerichteter_Graph" class="mw-redirect" title="Ungerichteter Graph">ungerichteter Graph</a> bipartit ist. Der ungerichtete Graph wird als <a href="Feld_(Datentyp)#Dimensionen" class="mw-redirect" title="Feld (Datentyp)">zweidimensionales Array</a> für die <a href="Adjazenzmatrix" title="Adjazenzmatrix">Adjazenzmatrix</a> deklariert. Der Algorithmus weist <a href="Benachbart" class="mw-redirect" title="Benachbart">benachbarten</a> Knoten alternierende Farben zu. Bei der Ausführung des Programms wird die <a href="Methode_(Programmierung)" title="Methode (Programmierung)">Methode</a> <i>Main</i> verwendet, die das Ergebnis auf der Konsole ausgibt.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></p><div class="mw-highlight mw-highlight-lang-c# mw-content-ltr" dir="ltr"><pre><span></span><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span>
<span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span>
<span class="k">class</span><span class="w"> </span><span class="nc">BipartiteGraph</span>
<span class="p">{</span>
<span class="w"> </span><span class="c1">// Diese Methode gibt true zurück, wenn der Graph bipartit ist, sonst false. Benachbarten Knoten werden alternierende Farben zugewiesen.</span>
<span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="nf">IsBipartite</span><span class="p">(</span><span class="kt">int</span><span class="p">[,]</span><span class="w"> </span><span class="n">graph</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">startIndex</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="p">[]</span><span class="w"> </span><span class="n">coloredVertices</span><span class="p">)</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">coloredVertices</span><span class="p">[</span><span class="n">startIndex</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// Weist dem Startknoten eine Farbe zu</span>
<span class="w"> </span><span class="n">Queue</span><span class="o"><</span><span class="kt">int</span><span class="o">></span><span class="w"> </span><span class="n">queue</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Queue</span><span class="o"><</span><span class="kt">int</span><span class="o">></span><span class="p">();</span><span class="w"> </span><span class="c1">// Deklariert eine Queue für die Knotenindexe</span>
<span class="w"> </span><span class="n">queue</span><span class="p">.</span><span class="n">Enqueue</span><span class="p">(</span><span class="n">startIndex</span><span class="p">);</span><span class="w"> </span><span class="c1">// Fügt den Startknoten der Queue hinzu</span>
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">queue</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="c1">// Solange die Queue nicht leer ist</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">queue</span><span class="p">.</span><span class="n">Peek</span><span class="p">();</span><span class="w"> </span><span class="c1">// Index des vordersten Knotens</span>
<span class="w"> </span><span class="n">queue</span><span class="p">.</span><span class="n">Dequeue</span><span class="p">();</span><span class="w"> </span><span class="c1">// Entfernt den vordersten Knoten</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">graph</span><span class="p">[</span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">index</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="c1">// Wenn der Graph eine Schleife enthält, wird false zurückgegeben</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">false</span><span class="p">;</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">coloredVertices</span><span class="p">.</span><span class="n">Length</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="c1">// for-Schleife, die die Knoten durchläuft</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">graph</span><span class="p">[</span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">coloredVertices</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="c1">// Wenn die Knoten verbunden sind und der Zielknoten nicht gefärbt ist</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">coloredVertices</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">coloredVertices</span><span class="p">[</span><span class="n">index</span><span class="p">];</span><span class="w"> </span><span class="c1">// Weist dem benachbarten Knoten die alternierende Farbe zu</span>
<span class="w"> </span><span class="n">queue</span><span class="p">.</span><span class="n">Enqueue</span><span class="p">(</span><span class="n">i</span><span class="p">);</span><span class="w"> </span><span class="c1">// Fügt den Knoten der Queue hinzu</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="k">else</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">graph</span><span class="p">[</span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">coloredVertices</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">coloredVertices</span><span class="p">[</span><span class="n">index</span><span class="p">])</span><span class="w"> </span><span class="c1">// Wenn die Knoten verbunden sind und dieselbe Farbe haben, wird false zurückgegeben</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">false</span><span class="p">;</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"> </span><span class="c1">// Wenn alle benachbarten Knoten alternierende Farben haben, wird true zurückgegeben</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span>
<span class="w"> </span><span class="c1">// Diese Methode gibt true zurück, wenn der Graph bipartit ist, sonst false</span>
<span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="nf">IsBipartite</span><span class="p">(</span><span class="kt">int</span><span class="p">[,]</span><span class="w"> </span><span class="n">graph</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">numberOfVertices</span><span class="p">)</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kt">int</span><span class="p">[]</span><span class="w"> </span><span class="n">coloredVertices</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">int</span><span class="p">[</span><span class="n">numberOfVertices</span><span class="p">];</span><span class="w"> </span><span class="c1">// Deklariert ein Array für die Farben der Knoten</span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">numberOfVertices</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="c1">// for-Schleife, die die Knoten durchläuft</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">coloredVertices</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// Initialisiert die Knoten mit -1, sodass die Knoten am Anfang nicht gefärbt sind</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="c1">// Prüfung für die Komponenten des Graphen</span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">numberOfVertices</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="c1">// for-Schleife, die die Knoten durchläuft</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">coloredVertices</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="o">!</span><span class="n">IsBipartite</span><span class="p">(</span><span class="n">graph</span><span class="p">,</span><span class="w"> </span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="n">coloredVertices</span><span class="p">))</span><span class="w"> </span><span class="c1">// Wenn der Knoten noch nicht gefärbt ist und die Komponente mit diesem Startknoten nicht bipartit ist, wird false zurückgegeben</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">false</span><span class="p">;</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"> </span><span class="c1">// Wenn alle Komponenten bipartit sind, wird true zurückgegeben</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span>
<span class="w"> </span><span class="c1">// Hauptmethode, die das Programm ausführt</span>
<span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">Main</span><span class="p">(</span><span class="n">String</span><span class="p">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="c1">// Deklariert und initialisiert ein zweidimensionales Array für die Adjazenzmatrix eines ungerichteten Graphen mit 4 Knoten</span>
<span class="w"> </span><span class="kt">int</span><span class="p">[,]</span><span class="w"> </span><span class="n">graph</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{{</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">},</span>
<span class="w"> </span><span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">},</span>
<span class="w"> </span><span class="p">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">},</span>
<span class="w"> </span><span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">},</span>
<span class="w"> </span><span class="p">};</span>
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">numberOfVertices</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="n">graph</span><span class="p">.</span><span class="n">GetLongLength</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// Variable für die Anzahl der Knoten</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">IsBipartite</span><span class="p">(</span><span class="n">graph</span><span class="p">,</span><span class="w"> </span><span class="n">numberOfVertices</span><span class="p">))</span><span class="w"> </span><span class="c1">// Aufruf der Methode</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="s">"Der Graph ist bipartit."</span><span class="p">);</span><span class="w"> </span><span class="c1">// Ausgabe auf der Konsole</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="k">else</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="s">"Der Graph ist nicht bipartit."</span><span class="p">);</span><span class="w"> </span><span class="c1">// Ausgabe auf der Konsole</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span>
<span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">ReadLine</span><span class="p">();</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Matching_(Graphentheorie)" title="Matching (Graphentheorie)">Matching (Graphentheorie)</a></li>
<li><a href="Petri-Netz" title="Petri-Netz">Petri-Netz</a></li>
<li><a href="Sekret%C3%A4rinnenproblem" title="Sekretärinnenproblem">Sekretärinnenproblem</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Frank Gurski, Irene Rothe, Jörg Rothe, Egon Wanke: <i>Exakte Algorithmen für schwere Graphenprobleme</i>, Springer-Verlag, Berlin Heidelberg, 2010, ISBN 978-3-642-04499-1.</li>
<li>Sven Krumke, Hartmut Noltemeier: Graphentheoretische Konzepte und Algorithmen, Vieweg+Teubner Verlag, 2012, ISBN 978-3-8348-1849-2.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><div class="noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Wikiversity"></span></span></div><b><a href="https://de.wikiversity.org/wiki/Kurs:Diskrete_Mathematik_(Osnabr%C3%BCck_2020)/Vorlesung_20" class="extiw external" title="v:Kurs:Diskrete Mathematik (Osnabrück 2020)/Vorlesung 20">Wikiversity: Eine Vorlesung über bipartite Graphen im Rahmen eines Kurses zur diskreten Mathematik</a></b> – Kursmaterialien</div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><div class="noresize noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Commons"></span></span></div><b><span class=""><a class="external text" href="https://commons.wikimedia.org/wiki/Category:Bipartite_graphs?uselang=de"><span lang="en">Commons</span>: Bipartiter Graph</a></span></b> – Sammlung von Bildern, Videos und Audiodateien</div>
<ul><li><a rel="nofollow" class="external text" href="https://www.spektrum.de/lexikon/mathematik/bipartiter-graph/2289"><i>Bipartiter Graph.</i></a> In: <i>Springer Lexikon der Mathematik.</i></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Béla Bollobás: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Modern Graph Theory</cite>. In: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Graduate Texts in Mathematics</cite>. 184. Jahrgang. Springer, 1998 (englisch, <a rel="nofollow" class="external text" href="https://books.google.com/books?id=SbZKSZ-1qrwC&pg=PA165">google.com</a>).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Bipartiter+Graph&rft.atitle=Modern+Graph+Theory&rft.au=B%C3%A9la+Bollob%C3%A1s&rft.btitle=Graduate+Texts+in+Mathematics&rft.date=1998&rft.genre=book&rft.pub=Springer&rft.volume=184.+Jahrgang" style="display:none"> </span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Maria Chudnovsky, Neil Robertson, Paul Seymour, Robin Thomas: <cite class="lang" lang="en" dir="auto" style="font-style:italic">The strong perfect graph theorem</cite>. In: <cite class="lang" lang="en" dir="auto" style="font-style:italic"><a href="Annals_of_Mathematics" title="Annals of Mathematics">Annals of Mathematics</a></cite>. 164. Jahrgang, <span style="white-space:nowrap">Nr.<span style="display:inline-block;width:.2em"> </span>1</span>, 2006, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>51–229</span>, <a href="Digital_Object_Identifier" title="Digital Object Identifier">doi</a>:<span class="uri-handle" style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://doi.org/10.4007/annals.2006.164.51">10.4007/annals.2006.164.51</a></span>, <a href="ArXiv" title="ArXiv">arxiv</a>:<a rel="nofollow" class="external text" href="https://arxiv.org/abs/math/0212070">math/0212070</a> (englisch).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rfr_id=info:sid/de.wikipedia.org:Bipartiter+Graph&rft.atitle=The+strong+perfect+graph+theorem&rft.au=Maria%26%2332%3BChudnovsky%2C%26%2332%3BNeil%26%2332%3BRobertson%2C%26%2332%3BPaul%26%2332%3BSeymour%2C+...&rft.date=2006&rft.doi=10.4007%2Fannals.2006.164.51&rft.genre=journal&rft.issue=1&rft.jtitle=Annals+of+Mathematics&rft.pages=51-229&rft.volume=164.+Jahrgang" style="display:none"> </span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text">Folge <a href="https://oeis.org/A033995" class="extiw external" title="oeis:A033995">A033995</a> in <a href="On-Line_Encyclopedia_of_Integer_Sequences" title="On-Line Encyclopedia of Integer Sequences">OEIS</a></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text">Folge <a href="https://oeis.org/A005142" class="extiw external" title="oeis:A005142">A005142</a> in <a href="On-Line_Encyclopedia_of_Integer_Sequences" title="On-Line Encyclopedia of Integer Sequences">OEIS</a></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text">Robert Sedgewick: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Algorithms in Java, Part 5: Graph Algorithms</cite>. In: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Addison-Wesley</cite>. 2004, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>109–111</span> (englisch).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Bipartiter+Graph&rft.atitle=Algorithms+in+Java%2C+Part+5%3A+Graph+Algorithms&rft.au=Robert%26%2332%3BSedgewick&rft.btitle=Addison-Wesley&rft.date=2004&rft.genre=book&rft.pages=109-111" style="display:none"> </span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text">Jon Kleinberg, Éva Tardos: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Algorithm Design</cite>. In: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Addison-Wesley</cite>. 2006, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>94–97</span> (englisch).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Bipartiter+Graph&rft.atitle=Algorithm+Design&rft.au=Jon%26%2332%3BKleinberg%2C%26%2332%3B%C3%89va%26%2332%3BTardos&rft.btitle=Addison-Wesley&rft.date=2006&rft.genre=book&rft.pages=94-97" style="display:none"> </span></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text">David Eppstein: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Testing bipartiteness of geometric intersection graphs</cite>. In: <cite class="lang" lang="en" dir="auto" style="font-style:italic">ACM Transactions on Algorithms</cite>. 5. Jahrgang, <span style="white-space:nowrap">Nr.<span style="display:inline-block;width:.2em"> </span>2</span>, 2009, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>Art. 15</span>, <a href="Digital_Object_Identifier" title="Digital Object Identifier">doi</a>:<span class="uri-handle" style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://doi.org/10.1145/1497290.1497291">10.1145/1497290.1497291</a></span>, <a href="ArXiv" title="ArXiv">arxiv</a>:<a rel="nofollow" class="external text" href="https://arxiv.org/abs/cs.CG/0307023">cs.CG/0307023</a> (englisch).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rfr_id=info:sid/de.wikipedia.org:Bipartiter+Graph&rft.atitle=Testing+bipartiteness+of+geometric+intersection+graphs&rft.au=David%26%2332%3BEppstein&rft.date=2009&rft.doi=10.1145%2F1497290.1497291&rft.genre=journal&rft.issue=2&rft.jtitle=ACM+Transactions+on+Algorithms&rft.pages=Art.+15&rft.volume=5.+Jahrgang" style="display:none"> </span></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text">Ravindra K. Ahuja, Thomas L. Magnanti, James B. Orlin: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Network Flows: Theory, Algorithms, and Applications</cite>. In: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Prentice Hall</cite>. 1993, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>461–509</span> (englisch).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Bipartiter+Graph&rft.atitle=Network+Flows%3A+Theory%2C+Algorithms%2C+and+Applications&rft.au=Ravindra+K.%26%2332%3BAhuja%2C%26%2332%3BThomas+L.%26%2332%3BMagnanti%2C%26%2332%3BJames+B.%26%2332%3BOrlin&rft.btitle=Prentice+Hall&rft.date=1993&rft.genre=book&rft.pages=461-509" style="display:none"> </span></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text">John E. Hopcroft, Richard M. Karp: <cite class="lang" lang="en" dir="auto" style="font-style:italic">An <i>n</i><sup>5/2</sup> algorithm for maximum matchings in bipartite graphs</cite>. In: <cite class="lang" lang="en" dir="auto" style="font-style:italic">SIAM Journal on Computing</cite>. 2. Jahrgang, <span style="white-space:nowrap">Nr.<span style="display:inline-block;width:.2em"> </span>4</span>, 1973, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>225–231</span>, <a href="Digital_Object_Identifier" title="Digital Object Identifier">doi</a>:<span class="uri-handle" style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://doi.org/10.1137/0202019">10.1137/0202019</a></span> (englisch).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rfr_id=info:sid/de.wikipedia.org:Bipartiter+Graph&rft.atitle=An+n5%2F2+algorithm+for+maximum+matchings+in+bipartite+graphs&rft.au=John+E.%26%2332%3BHopcroft%2C%26%2332%3BRichard+M.%26%2332%3BKarp&rft.date=1973&rft.doi=10.1137%2F0202019&rft.genre=journal&rft.issue=4&rft.jtitle=SIAM+Journal+on+Computing&rft.pages=225-231&rft.volume=2.+Jahrgang" style="display:none"> </span></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a></span> <span class="reference-text">GeeksforGeeks: <a rel="nofollow" class="external text" href="https://www.geeksforgeeks.org/bipartite-graph/">Check whether a given graph is Bipartite or not</a></span>
</li>
</ol>
<div class="hintergrundfarbe1 rahmenfarbe1 navigation-not-searchable normdaten-typ-s" style="border-style: solid; border-width: 1px; clear: left; margin-bottom:1em; margin-top:1em; padding: 0.25em; overflow: hidden; word-break: break-word; word-wrap: break-word;" id="normdaten">
<div style="display: table-cell; vertical-align: middle; width: 100%;">
<div>
Normdaten (Sachbegriff): <a href="Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>: <span class="-print"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4145661-0">4145661-0</a></span> </div>
</div></div></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-10-19" href="https://de.wikipedia.org/wiki/?title=Bipartiter_Graph&oldid=260742696">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>